home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / g_man / cat3 / OpenGL / glintro.z / glintro
Encoding:
Text File  |  2001-04-17  |  95.5 KB  |  1,065 lines

  1.  
  2.  
  3.  
  4. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ggggllllIIIInnnnttttrrrroooo - Introduction to OpenGL
  10.  
  11.  
  12.  
  13. OOOOVVVVEEEERRRRVVVVIIIIEEEEWWWW
  14.      OpenGL is a high-performance 3D-oriented renderer that supersedes IrisGL.
  15.      It is supported on all SGI graphics adaptors except for the G, GT and
  16.      GTX. A number of other workstation and personal computer vendors also
  17.      support OpenGL.
  18.  
  19.      See ggggllllXXXXIIIInnnnttttrrrroooo for a short example program and compilation instructions.
  20.  
  21.  
  22.  
  23. OOOOPPPPEEEENNNNGGGGLLLL EEEEXXXXTTTTEEEENNNNSSSSIIIIOOOONNNNSSSS
  24.      SGI has implemented the following extensions to OpenGL.  Note that the
  25.      set of supported extensions varies from machine to machine; see below for
  26.      more information.
  27.  
  28.  
  29.      EEEEXXXXTTTT____aaaabbbbggggrrrr
  30.           extends the list of host-memory color formats.  Specifically, it
  31.           provides a reverse-order alternative to image format RGBA. The ABGR
  32.           component order matches the cpack Iris GL format on big-endian
  33.           machines. For more information, see ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ggggllllGGGGeeeettttTTTTeeeexxxxIIIImmmmaaaaggggeeee,
  34.           ggggllllRRRReeeeaaaaddddPPPPiiiixxxxeeeellllssss, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD, and ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD.
  35.  
  36.  
  37.      SSSSGGGGIIIIXXXX____aaaassssyyyynnnncccc
  38.           provides a way to allow certain OpenGL commands to complete out-of-
  39.           order with respect to others.  This extension does not by itself
  40.           enable asynchrony; it is a framework establishing functions for
  41.           bookkeeping and synchronization, into which specific further OpenGL
  42.           extensions can be inserted.  Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For
  43.           more information, see ggggllllAAAAssssyyyynnnnccccMMMMaaaarrrrkkkkeeeerrrrSSSSGGGGIIIIXXXX, ggggllllFFFFiiiinnnniiiisssshhhhAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX,
  44.           ggggllllPPPPoooollllllllAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX, ggggllllGGGGeeeennnnAAAAssssyyyynnnnccccMMMMaaaarrrrkkkkeeeerrrrssssSSSSGGGGIIIIXXXX, ggggllllDDDDeeeelllleeeetttteeeeAAAAssssyyyynnnnccccMMMMaaaarrrrkkkkeeeerrrrssssSSSSGGGGIIIIXXXX,
  45.           ggggllllIIIIssssAAAAssssyyyynnnnccccMMMMaaaarrrrkkkkeeeerrrrSSSSGGGGIIIIXXXX, and ggggllllFFFFiiiinnnniiiisssshhhh.
  46.  
  47.  
  48.      SSSSGGGGIIIIXXXX____aaaassssyyyynnnncccc____ppppiiiixxxxeeeellll
  49.           provides a new asynchronous mode for texture download, pixel
  50.           download and pixel readback commands, in conjunction with the
  51.           SSSSGGGGIIIIXXXX____aaaassssyyyynnnncccc extension.  It allows programs to transfer textures or
  52.           images from the host to the graphics accelerator in parallel with
  53.           the execution of other graphics commands.  It also allows programs
  54.           to issue non-blocking pixel readback commands that return
  55.           immediately after they are issued, so that the program can issue
  56.           other commands while the readback takes place.  Supported on OOOOccccttttaaaannnneeee2222
  57.           VVVVPPPPrrrroooo systems.  For more information, see ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ggggllllEEEEnnnnaaaabbbblllleeee,
  58.           ggggllllRRRReeeeaaaaddddPPPPiiiixxxxeeeellllssss, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee3333DDDD,
  59.           ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD, and ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee3333DDDD.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  71.  
  72.  
  73.  
  74.      SSSSGGGGIIIIXXXX____bbbblllleeeennnndddd____aaaallllpppphhhhaaaa____mmmmiiiinnnnmmmmaaaaxxxx
  75.           enhances ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnn by providing new blend equations which
  76.           produce outcomes for all four color components based only on the
  77.           comparison of the alpha component's source and destination values.
  78.           Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For more information, see
  79.           ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnn.
  80.  
  81.  
  82.      EEEEXXXXTTTT____bbbblllleeeennnndddd____ccccoooolllloooorrrr
  83.           allows a constant to be used as a factor in the blending equation.
  84.           A typical use is to blend two RGB images.  Without the constant
  85.           blend factor, one image must have an alpha channel with each pixel
  86.           set to the desired blend factor.  For more information, see
  87.           ggggllllBBBBlllleeeennnnddddCCCCoooolllloooorrrrEEEEXXXXTTTT, ggggllllBBBBlllleeeennnnddddFFFFuuuunnnncccc, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv,
  88.           ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
  89.  
  90.  
  91.      EEEEXXXXTTTT____bbbblllleeeennnndddd____llllooooggggiiiicccc____oooopppp
  92.           defines an additional blending equation for ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnnEEEEXXXXTTTT.
  93.           This equation is a simple logical combination of the source and
  94.           destination colors.  For more information, see ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv,
  95.           ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
  96.  
  97.  
  98.      EEEEXXXXTTTT____bbbblllleeeennnndddd____mmmmiiiinnnnmmmmaaaaxxxx
  99.           allows the blend equation to be changed using ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnnEEEEXXXXTTTT and
  100.           introduces two new blend equations, one to produce the minimum color
  101.           components of the source and destination colors and one to produce
  102.           the maximum.  For more information, see ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv,
  103.           ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
  104.  
  105.  
  106.      EEEEXXXXTTTT____bbbblllleeeennnndddd____ssssuuuubbbbttttrrrraaaacccctttt
  107.           defines two additional blending equations for use with
  108.           ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnnEEEEXXXXTTTT. These new equations are similar to the default
  109.           blending equation, but produce the difference of its terms, rather
  110.           than the sum. Image differences are useful in many image processing
  111.           applications. For more information, see ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv,
  112.           ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
  113.  
  114.  
  115.      SSSSGGGGIIIIXXXX____ccccaaaalllllllliiiiggggrrrraaaapppphhhhiiiicccc____ffffrrrraaaaggggmmmmeeeennnntttt
  116.           modifies fragment processing, such that when
  117.           GGGGLLLL____CCCCAAAALLLLLLLLIIIIGGGGRRRRAAAAPPPPHHHHIIIICCCC____FFFFRRRRAAAAGGGGMMMMEEEENNNNTTTT____SSSSGGGGIIIIXXXX is enabled, fragment information is
  118.           also sent to the calligraphic interface.  Supported only on
  119.           IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more information, see ggggllllEEEEnnnnaaaabbbblllleeee and
  120.           ggggllllGGGGeeeetttt.
  121.  
  122.  
  123.      SSSSGGGGIIIIXXXX____cccclllliiiippppmmmmaaaapppp
  124.           introduces new filtering and memory management techniques for
  125.           handling extraordinarily large textures.  Clipmaps provide many of
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  137.  
  138.  
  139.  
  140.           the features of mipmaps, while using a small fraction of the texture
  141.           memory required for mipmaps of equivalent size.  They are especially
  142.           useful for rendering terrain and roaming over large images.
  143.           Clipmaps are supported on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more
  144.           information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
  145.  
  146.  
  147.      SSSSGGGGIIII____ccccoooolllloooorrrr____mmmmaaaattttrrrriiiixxxx
  148.           adds a 4x4 matrix stack and matrix multiplication to the pixel
  149.           transfer path.  The color matrix operates on RGBA pixel components.
  150.           It can be used to reorder or duplicate color components, and to
  151.           implement simple color-space conversions.  For more information, see
  152.           ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv, and
  153.           ggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrr.
  154.  
  155.  
  156.      SSSSGGGGIIII____ccccoooolllloooorrrr____ttttaaaabbbblllleeee
  157.           defines a new RGBA-format color lookup table mechanism, and several
  158.           new lookup tables in the OpenGL pixel path.  The new lookup tables
  159.           are treated as one-dimensional images with internal formats, like
  160.           texture images and convolution filter images.  This allows the
  161.           tables to operate on a subset of the components of passing pixels.
  162.           (For example, a table with internal format GGGGLLLL____AAAALLLLPPPPHHHHAAAA modifies only
  163.           the A component of each passing pixel, leaving the R, G, and B
  164.           components untouched.)  A small subset of this extension is
  165.           supported on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems; because
  166.           of this, the extension is not listed in the extensions string
  167.           returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg.  The full extension is supported on all
  168.           other systems.  For more information, see ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeeeSSSSGGGGIIII,
  169.           ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeeePPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIII, and ggggllllGGGGeeeettttCCCCoooolllloooorrrrTTTTaaaabbbblllleeeePPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIII.
  170.  
  171.  
  172.      EEEEXXXXTTTT____ccccoooonnnnvvvvoooolllluuuuttttiiiioooonnnn
  173.           adds 1- or 2-dimensional convolution operations to the pixel
  174.           transfer process.  Pixel drawing, reading, and copying, as well as
  175.           texture image definition, are candidates for convolution. The
  176.           convolution kernels are themselves treated as 1- and 2-dimensional
  177.           images, which can be loaded from application memory or from the
  178.           framebuffer.  A subset of this extension is supported on
  179.           RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems; the full extension
  180.           is supported on all other systems.  For more information, see
  181.           ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr1111DDDDEEEEXXXXTTTT, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT,
  182.           ggggllllCCCCooooppppyyyyCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr1111DDDDEEEEXXXXTTTT, ggggllllCCCCooooppppyyyyCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT,
  183.           ggggllllGGGGeeeettttCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrrEEEEXXXXTTTT, ggggllllSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT,
  184.           ggggllllGGGGeeeettttSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrrEEEEXXXXTTTT, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiiEEEEXXXXTTTT,
  185.           ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvEEEEXXXXTTTT, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffEEEEXXXXTTTT,
  186.           ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvEEEEXXXXTTTT, ggggllllGGGGeeeettttCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvEEEEXXXXTTTT,
  187.           ggggllllGGGGeeeettttCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvEEEEXXXXTTTT,  ggggllllEEEEnnnnaaaabbbblllleeee, ggggllllDDDDiiiissssaaaabbbblllleeee, ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd,
  188.           ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv,
  189.           ggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrriiii, and ggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrrffff.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  203.  
  204.  
  205.  
  206.      SSSSGGGGIIIIXXXX____ccccoooonnnnvvvvoooolllluuuuttttiiiioooonnnn____aaaaccccccccuuuurrrraaaaccccyyyy
  207.           provides a way to trade off convolution performance against
  208.           arithmetic accuracy.  Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For more
  209.           information, see ggggllllHHHHiiiinnnntttt.
  210.  
  211.  
  212.      EEEEXXXXTTTT____ccccooooppppyyyy____tttteeeexxxxttttuuuurrrreeee
  213.           provides the ability to copy pixels directly from the framebuffer
  214.           into texture memory.  At present only a small subset of this
  215.           extension has been implemented on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and
  216.           VVVVTTTTXXXX systems, so the extension name is not listed in the extensions
  217.           string returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg.  It is fully supported on all other
  218.           systems.  For more information, see ggggllllCCCCooooppppyyyyTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDDEEEEXXXXTTTT,
  219.           ggggllllCCCCooooppppyyyyTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT, ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDDEEEEXXXXTTTT, ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT
  220.           and ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee3333DDDDEEEEXXXXTTTT.
  221.  
  222.  
  223.      SSSSGGGGIIIISSSS____ddddeeeettttaaaaiiiillll____tttteeeexxxxttttuuuurrrreeee
  224.           introduces texture magnification filters that blend between the
  225.           level 0 image and a separately defined "detail" image. This detail
  226.           blending can be enabled for all color channels, for the alpha
  227.           channel only, or for the red, green, and blue channels only. It is
  228.           available only for 2D textures.  Supported on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee,
  229.           RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems, on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems and on
  230.           OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For more information, see
  231.           ggggllllDDDDeeeettttaaaaiiiillllTTTTeeeexxxxFFFFuuuunnnnccccSSSSGGGGIIIISSSS, ggggllllGGGGeeeettttDDDDeeeettttaaaaiiiillllTTTTeeeexxxxFFFFuuuunnnnccccSSSSGGGGIIIISSSS, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD,
  232.           ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffff, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiii,
  233.           ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT, ggggllllGGGGeeeettttTTTTeeeexxxxIIIImmmmaaaaggggeeee,
  234.           ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv,
  235.           ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv,
  236.           ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
  237.  
  238.  
  239.      SSSSGGGGIIIIXXXX____fffflllluuuusssshhhh____rrrraaaasssstttteeeerrrr
  240.           defines the ggggllllFFFFlllluuuusssshhhhRRRRaaaasssstttteeeerrrrSSSSGGGGIIIIXXXX command, which ensures that all pixel
  241.           fragment operations generated by preceding commands have been
  242.           completed.  Unlike ggggllllFFFFiiiinnnniiiisssshhhh, ggggllllFFFFlllluuuusssshhhhRRRRaaaasssstttteeeerrrrSSSSGGGGIIIIXXXX does not block the
  243.           application until notification of completion has been delivered.
  244.           This is useful in conjunction with some performance measurement
  245.           techniques (see SSSSGGGGIIIIXXXX____iiiirrrr____iiiinnnnssssttttrrrruuuummmmeeeennnntttt1111, for example).  Supported only
  246.           on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more information, see
  247.           ggggllllFFFFlllluuuusssshhhhRRRRaaaasssstttteeeerrrrSSSSGGGGIIIIXXXX, ggggllllGGGGeeeettttIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, ggggllllIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssBBBBuuuuffffffffeeeerrrrSSSSGGGGIIIIXXXX,
  248.           ggggllllPPPPoooollllllllIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, ggggllllRRRReeeeaaaaddddIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX,
  249.           ggggllllSSSSttttaaaarrrrttttIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, and ggggllllSSSSttttooooppppIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX.
  250.  
  251.  
  252.      SSSSGGGGIIIISSSS____ffffoooogggg____ffffuuuunnnnccccttttiiiioooonnnn
  253.           Standard OpenGL defines three fog modes:  GGGGLLLL____LLLLIIIINNNNEEEEAAAARRRR, GGGGLLLL____EEEEXXXXPPPP
  254.           (exponential), and GGGGLLLL____EEEEXXXXPPPP2222 (exponential squared).  Visual simulation
  255.           systems can benefit from more sophisticated atmospheric effects.
  256.           This extension provides the ability to define a custom fog blending
  257.           function by specifying a set of control points that will be
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  269.  
  270.  
  271.  
  272.           interpolated by the function.  Supported on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy and
  273.           OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For more information, see ggggllllFFFFooooggggFFFFuuuunnnnccccSSSSGGGGIIIISSSS,
  274.           ggggllllFFFFoooogggg, and ggggllllGGGGeeeetttt.
  275.  
  276.  
  277.      SSSSGGGGIIIIXXXX____ffffoooogggg____ooooffffffffsssseeeetttt
  278.           In highly-fogged environments, emissive objects (like simulated
  279.           automobile headlights or runway landing lights) can appear
  280.           unrealistically dim.  This extension brightens fogged objects by
  281.           offsetting the Z value used in fog computations.  Supported on
  282.           IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy and OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For more information, see
  283.           ggggllllEEEEnnnnaaaabbbblllleeee, ggggllllFFFFoooogggg, and ggggllllGGGGeeeetttt.
  284.  
  285.  
  286.      SSSSGGGGIIIIXXXX____ffffrrrraaaaggggmmmmeeeennnntttt____lllliiiigggghhhhttttiiiinnnngggg
  287.           provides a general lighting facility for lighting effects obtained
  288.           by interpolation of normals over a primitive, rather than by
  289.           interpolation of color.  Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For
  290.           more information, see ggggllllGGGGeeeettttFFFFrrrraaaaggggmmmmeeeennnnttttLLLLiiiigggghhhhttttffffvvvvSSSSGGGGIIIIXXXX,
  291.           ggggllllGGGGeeeettttFFFFrrrraaaaggggmmmmeeeennnnttttLLLLiiiigggghhhhttttiiiivvvvSSSSGGGGIIIIXXXX, ggggllllGGGGeeeettttFFFFrrrraaaaggggmmmmeeeennnnttttMMMMaaaatttteeeerrrriiiiaaaallllffffvvvvSSSSGGGGIIIIXXXX,
  292.           ggggllllGGGGeeeettttFFFFrrrraaaaggggmmmmeeeennnnttttMMMMaaaatttteeeerrrriiiiaaaalllliiiivvvvSSSSGGGGIIIIXXXX, ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttCCCCoooolllloooorrrrMMMMaaaatttteeeerrrriiiiaaaallllSSSSGGGGIIIIXXXX,
  293.           ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttLLLLiiiigggghhhhttttffffSSSSGGGGIIIIXXXX, ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttLLLLiiiigggghhhhttttiiiiSSSSGGGGIIIIXXXX, ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttLLLLiiiigggghhhhttttffffvvvvSSSSGGGGIIIIXXXX,
  294.           ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttLLLLiiiigggghhhhttttiiiivvvvSSSSGGGGIIIIXXXX, ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttLLLLiiiigggghhhhttttMMMMooooddddeeeellllffffSSSSGGGGIIIIXXXX,
  295.           ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttLLLLiiiigggghhhhttttMMMMooooddddeeeelllliiiiSSSSGGGGIIIIXXXX, ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttLLLLiiiigggghhhhttttMMMMooooddddeeeellllffffvvvvSSSSGGGGIIIIXXXX,
  296.           ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttLLLLiiiigggghhhhttttMMMMooooddddeeeelllliiiivvvvSSSSGGGGIIIIXXXX, ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttMMMMaaaatttteeeerrrriiiiaaaallllffffSSSSGGGGIIIIXXXX,
  297.           ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttMMMMaaaatttteeeerrrriiiiaaaalllliiiiSSSSGGGGIIIIXXXX, ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttMMMMaaaatttteeeerrrriiiiaaaallllffffvvvvSSSSGGGGIIIIXXXX,
  298.           ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttMMMMaaaatttteeeerrrriiiiaaaalllliiiivvvvSSSSGGGGIIIIXXXX, and ggggllllLLLLiiiigggghhhhttttEEEEnnnnvvvviiiiSSSSGGGGIIIIXXXX.
  299.  
  300.  
  301.      EEEEXXXXTTTT____hhhhiiiissssttttooooggggrrrraaaammmm
  302.           defines pixel operations that count occurrences of specific color
  303.           component values (histogram) and track the minimum and maximum color
  304.           component values (minmax).  An optional mode allows pixel data to be
  305.           discarded after the histogram and/or minmax operations are
  306.           completed.  Otherwise the pixel data continue on to the next
  307.           operation unaffected.  For more information, see ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT,
  308.           ggggllllRRRReeeesssseeeettttHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT, ggggllllGGGGeeeettttHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT,
  309.           ggggllllGGGGeeeettttHHHHiiiissssttttooooggggrrrraaaammmmPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvEEEEXXXXTTTT, ggggllllGGGGeeeettttHHHHiiiissssttttooooggggrrrraaaammmmPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvEEEEXXXXTTTT,
  310.           ggggllllMMMMiiiinnnnmmmmaaaaxxxxEEEEXXXXTTTT, ggggllllRRRReeeesssseeeettttMMMMiiiinnnnmmmmaaaaxxxxEEEEXXXXTTTT, ggggllllGGGGeeeettttMMMMiiiinnnnmmmmaaaaxxxxEEEEXXXXTTTT,
  311.           ggggllllGGGGeeeettttMMMMiiiinnnnmmmmaaaaxxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvEEEEXXXXTTTT, ggggllllGGGGeeeettttMMMMiiiinnnnmmmmaaaaxxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvEEEEXXXXTTTT, ggggllllEEEEnnnnaaaabbbblllleeee,
  312.           ggggllllDDDDiiiissssaaaabbbblllleeee, ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv,
  313.           and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
  314.  
  315.  
  316.      AAAARRRRBBBB____iiiimmmmaaaaggggiiiinnnngggg
  317.           defines a large set of image processing primitives, such as color
  318.           tables, convolution, color matrices, histogramming, and additional
  319.           blending behavior.  The definition of this extension is provided as
  320.           optional material in the OpenGL 1.2 specification.
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  335.  
  336.  
  337.  
  338.      SSSSGGGGIIIIXXXX____iiiinnnnssssttttrrrruuuummmmeeeennnnttttssss
  339.           defines a mechanism to take performance measurements from
  340.           instruments within the GL.  Currently supported only on
  341.           IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more information, see ggggllllEEEEnnnnaaaabbbblllleeee,
  342.           ggggllllGGGGeeeettttIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, ggggllllIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssBBBBuuuuffffffffeeeerrrrSSSSGGGGIIIIXXXX,
  343.           ggggllllPPPPoooollllllllIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, ggggllllRRRReeeeaaaaddddIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX,
  344.           ggggllllSSSSttttaaaarrrrttttIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, ggggllllSSSSttttooooppppIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, and
  345.           ggggllllFFFFlllluuuusssshhhhRRRRaaaasssstttteeeerrrrSSSSGGGGIIIIXXXX.
  346.  
  347.  
  348.      SSSSGGGGIIIIXXXX____iiiinnnntttteeeerrrrllllaaaacccceeee
  349.           modifies the behavior of ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ggggllllCCCCooooppppyyyyPPPPiiiixxxxeeeellllssss, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD,
  350.           ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT, ggggllllCCCCooooppppyyyyTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT and ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT,
  351.           such that when GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX is enabled the source image is
  352.           considered to be a field of an "interlaced" frame.  That is, the
  353.           effective source image has height equal to twice the actual height
  354.           and every other row contains "transparent" pixels that do not affect
  355.           the corresponding destination pixels in the target image.  For
  356.           example:
  357.  
  358.                ggggllllEEEEnnnnaaaabbbblllleeee(GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX);
  359.                _s_e_t _c_u_r_r_e_n_t _r_a_s_t_e_r _p_o_s_i_t_i_o_n _t_o (x , y )
  360.                                                 r   r
  361.                ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss(width, height, GGGGLLLL____RRRRGGGGBBBBAAAA, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE, I );
  362.                                                                        0
  363.                _s_e_t _r_a_s_t_e_r _p_o_s_i_t_i_o_n _t_o (x , y +zoom )
  364.                                         r   r     y
  365.                ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss(width, height, GGGGLLLL____RRRRGGGGBBBBAAAA, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE, I );
  366.                                                                        1
  367.  
  368.  
  369.           is equivalent to
  370.  
  371.                ggggllllDDDDiiiissssaaaabbbblllleeee( GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX);
  372.                _s_e_t _c_u_r_r_e_n_t _r_a_s_t_e_r _p_o_s_i_t_i_o_n _t_o (x , y )
  373.                                                 r   r
  374.                ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss(width, 2xheight, GGGGLLLL____RRRRGGGGBBBBAAAA, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE, I );
  375.                                                                          2
  376.  
  377.  
  378.           where pixel rows (0,2,4,...) of I  are from image I , and rows
  379.                                            2                 0
  380.           (1,3,5,...) are from image I .
  381.                                       1
  382.  
  383.           This is particularly useful for assembling consecutive interlaced
  384.           video format fields into a complete frame in either the framebuffer
  385.           or in texture memory.  Supported on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222,
  386.           and VVVVTTTTXXXX systems, on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems, on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo
  387.           systems, and on OOOO2222 systems.
  388.  
  389.  
  390.      IIIINNNNGGGGRRRR____iiiinnnntttteeeerrrrllllaaaacccceeee____rrrreeeeaaaadddd
  391.           modifies the behavior of ggggllllRRRReeeeaaaaddddPPPPiiiixxxxeeeellllssss, ggggllllCCCCooooppppyyyyPPPPiiiixxxxeeeellllssss,
  392.           ggggllllCCCCooooppppyyyyTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT and ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT.  When
  393.           GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____RRRREEEEAAAADDDD____IIIINNNNGGGGRRRR is enabled the pixels being read or copied
  394.           represent one field of an "interlaced" frame. The source image
  395.           height in the framebuffer is equivalent to twice the specified
  396.           height of the transfer.  Every other row of the source pixel
  397.           rectangle is skipped, so that only source rows (0,2,4,...) affect
  398.  
  399.  
  400.  
  401.                                                                         PPPPaaaaggggeeee 6666
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  409.  
  410.  
  411.  
  412.           the destination image. This is useful for extracting fields from an
  413.           interlaced video frame in the framebuffer.  Supported on OOOOccccttttaaaannnneeee2222
  414.           VVVVPPPPrrrroooo systems, and on OOOO2222 systems.
  415.  
  416.  
  417.      SSSSGGGGIIIIXXXX____iiiirrrr____iiiinnnnssssttttrrrruuuummmmeeeennnntttt1111
  418.           defines a performance-measurement instrument for IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy
  419.           systems.  The instrument is controlled with the SSSSGGGGIIIIXXXX____iiiinnnnssssttttrrrruuuummmmeeeennnnttttssss
  420.           extension.  For more information, see ggggllllIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssBBBBuuuuffffffffeeeerrrrSSSSGGGGIIIIXXXX,
  421.           ggggllllGGGGeeeettttIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, ggggllllPPPPoooollllllllIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, ggggllllRRRReeeeaaaaddddIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX,
  422.           ggggllllSSSSttttaaaarrrrttttIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, ggggllllSSSSttttooooppppIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, and ggggllllEEEEnnnnaaaabbbblllleeee.
  423.  
  424.  
  425.      SSSSGGGGIIIIXXXX____lllliiiisssstttt____pppprrrriiiioooorrrriiiittttyyyy
  426.           defines a mechanism to specify priorities for display lists.  Some
  427.           machines have special high-performance display list memories; this
  428.           extension allows the user to tell the GL which display lists should
  429.           be stored in those memories.  Supported on HHHHiiiigggghhhh IIIImmmmppppaaaacccctttt and MMMMaaaaxxxxiiiimmmmuuuummmm
  430.           IIIImmmmppppaaaacccctttt systems and on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy and OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For
  431.           more information, see ggggllllLLLLiiiissssttttPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffSSSSGGGGIIIIXXXX, ggggllllLLLLiiiissssttttPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiiSSSSGGGGIIIIXXXX,
  432.           ggggllllLLLLiiiissssttttPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvSSSSGGGGIIIIXXXX, ggggllllLLLLiiiissssttttPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvSSSSGGGGIIIIXXXX,
  433.           ggggllllGGGGeeeettttLLLLiiiissssttttPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvSSSSGGGGIIIIXXXX and ggggllllGGGGeeeettttLLLLiiiissssttttPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvSSSSGGGGIIIIXXXX.
  434.  
  435.  
  436.      SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee
  437.           provides a mechanism to antialias all primitives.  The technique is
  438.           to sample all primitives multiple times at different locations
  439.           within each pixel (rather than just the pixel center). The color
  440.           sample values are resolved to a single, displayable color each time
  441.           a pixel is updated, so the antialiasing appears to be automatic at
  442.           the application level.  Supported on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222,
  443.           and VVVVTTTTXXXX systems and on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more
  444.           information, see ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS, ggggllllSSSSaaaammmmpppplllleeeePPPPaaaatttttttteeeerrrrnnnnSSSSGGGGIIIISSSS,
  445.           ggggllllTTTTaaaaggggSSSSaaaammmmpppplllleeeeBBBBuuuuffffffffeeeerrrrSSSSGGGGIIIIXXXX, ggggllllXXXXCCCChhhhoooooooosssseeeeVVVViiiissssuuuuaaaallll, ggggllllXXXXGGGGeeeettttCCCCoooonnnnffffiiiigggg, ggggllllEEEEnnnnaaaabbbblllleeee,
  446.           ggggllllDDDDiiiissssaaaabbbblllleeee, ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd, ggggllllPPPPuuuusssshhhhAAAAttttttttrrrriiiibbbb, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv,
  447.           ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, and ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv.
  448.  
  449.  
  450.      EEEEXXXXTTTT____ppppaaaacccckkkkeeeedddd____ppppiiiixxxxeeeellllssss
  451.           provides support for packed pixels in host memory.  A packed pixel
  452.           is represented entirely by one unsigned byte, one unsigned short, or
  453.           one unsigned integer. The fields with the packed pixel are not
  454.           proper machine types, but the pixel as a whole is. Thus the pixel
  455.           storage modes, and their unpacking counterparts, all work correctly
  456.           with packed pixels. This extension is not supported on
  457.           RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems. For more
  458.           information, see ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ggggllllRRRReeeeaaaaddddPPPPiiiixxxxeeeellllssss, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD,
  459.           ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee3333DDDDEEEEXXXXTTTT, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDDEEEEXXXXTTTT,
  460.           ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee3333DDDDEEEEXXXXTTTT, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr1111DDDDEEEEXXXXTTTT,
  461.           ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr3333DDDDEEEEXXXXTTTT,
  462.           ggggllllSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT, ggggllllSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrr3333DDDDEEEEXXXXTTTT, ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeeeSSSSGGGGIIII,
  463.           ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee4444DDDDSSSSGGGGIIIISSSS, and ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee4444DDDDSSSSGGGGIIIISSSS.
  464.  
  465.  
  466.  
  467.                                                                         PPPPaaaaggggeeee 7777
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  475.  
  476.  
  477.  
  478.      SSSSGGGGIIIISSSS____ppppiiiixxxxeeeellll____tttteeeexxxxttttuuuurrrreeee
  479.           allows the color components of pixel groups to be used as texture
  480.           coordinates, effectively converting a color image into a texture
  481.           coordinate image.  Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For more
  482.           information, see ggggllllPPPPiiiixxxxeeeellllTTTTeeeexxxxGGGGeeeennnnPPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIIISSSS.
  483.  
  484.  
  485.      SSSSGGGGIIIISSSS____ppppooooiiiinnnntttt____ppppaaaarrrraaaammmmeeeetttteeeerrrrssss
  486.           provides support for light points (approximations of distant light
  487.           sources that are used in simulations of nighttime scenes).
  488.           Supported only on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more information,
  489.           see ggggllllPPPPooooiiiinnnnttttPPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIIISSSS.
  490.  
  491.  
  492.      EEEEXXXXTTTT____ppppoooollllyyyyggggoooonnnn____ooooffffffffsssseeeetttt
  493.           allows depth values of fragments to be displaced so that lines (or
  494.           points) and polygons that lie in the same plane can be rendered
  495.           without interaction -- the lines are rendered either completely in
  496.           front of or behind the polygons (depending on the sign of the offset
  497.           factor).  It also allows multiple coplanar polygons to be rendered
  498.           without interaction, if different offset factors are used for each
  499.           polygon.  For more information, see ggggllllPPPPoooollllyyyyggggoooonnnnOOOOffffffffsssseeeettttEEEEXXXXTTTT, ggggllllEEEEnnnnaaaabbbblllleeee,
  500.           ggggllllDDDDiiiissssaaaabbbblllleeee, ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv,
  501.           and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
  502.  
  503.  
  504.      SSSSGGGGIIIIXXXX____rrrreeeeffffeeeerrrreeeennnncccceeee____ppppllllaaaannnneeee
  505.           allows a group of coplanar primitives to be rendered without depth-
  506.           buffering artifacts.  This is accomplished by generating the depth
  507.           values for all the primitives from a single ``reference plane''
  508.           rather than from the primitives themselves.  This ensures that all
  509.           the primitives in the group have exactly the same depth value at any
  510.           given sample point, no matter what imprecision may exist in the
  511.           original specifications of the primitives or in the GL's coordinate
  512.           transformation process.  SSSSGGGGIIIIXXXX____rrrreeeeffffeeeerrrreeeennnncccceeee____ppppllllaaaannnneeee is useful for
  513.           generating hidden-line drawings, for applying decals to polygons,
  514.           and for multipass rendering techniques.  Supported on
  515.           IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more information, see
  516.           ggggllllRRRReeeeffffeeeerrrreeeennnncccceeeePPPPllllaaaannnneeeeSSSSGGGGIIIIXXXX.
  517.  
  518.  
  519.      SSSSGGGGIIIIXXXX____rrrreeeessssaaaammmmpppplllleeee
  520.           enhances the unpacking resampling capabilities of the SSSSGGGGIIIIXXXX____ssssuuuubbbbssssaaaammmmpppplllleeee
  521.           extension.  Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For more
  522.           information, see ggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeeeffff and ggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeeeiiii.
  523.  
  524.  
  525.      SSSSGGGGIIIIXXXX____ssssccccaaaalllleeeebbbbiiiiaaaassss____hhhhiiiinnnntttt
  526.           provides a way to trade off arithmetic accuracy against performance.
  527.           typically for large scale factors.  Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo
  528.           systems.  For more information, see ggggllllHHHHiiiinnnntttt.
  529.  
  530.  
  531.  
  532.  
  533.                                                                         PPPPaaaaggggeeee 8888
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  541.  
  542.  
  543.  
  544.      SSSSGGGGIIIIXXXX____sssshhhhaaaaddddoooowwww
  545.           provides support for rendering shadows using shadow maps.  First the
  546.           application renders the scene from the point of view of the light
  547.           source, and copies the resulting depth buffer to a texture with
  548.           internal format GGGGLLLL____DDDDEEEEPPPPTTTTHHHH____CCCCOOOOMMMMPPPPOOOONNNNEEEENNNNTTTT, GGGGLLLL____DDDDEEEEPPPPTTTTHHHH____CCCCOOOOMMMMPPPPOOOONNNNEEEENNNNTTTT11116666____SSSSGGGGIIIIXXXX,
  549.           GGGGLLLL____DDDDEEEEPPPPTTTTHHHH____CCCCOOOOMMMMPPPPOOOONNNNEEEENNNNTTTT22224444____SSSSGGGGIIIIXXXX, or GGGGLLLL____DDDDEEEEPPPPTTTTHHHH____CCCCOOOOMMMMPPPPOOOONNNNEEEENNNNTTTT33332222____SSSSGGGGIIIIXXXX.  Next the
  550.           application renders the scene from the normal viewpoint.  Then the
  551.           application enables the texture parameter GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____CCCCOOOOMMMMPPPPAAAARRRREEEE____SSSSGGGGIIIIXXXX,
  552.           sets the texture comparison operator and texture matrix
  553.           appropriately, and re-renders the scene with 2D texturing enabled.
  554.           During this final rendering pass, the depth value generated by
  555.           iterating the _r texture coordinate is compared with the shadow map
  556.           stored in texture memory, and the results of the comparison indicate
  557.           whether the pixel being textured is in shadow.  The filtered result
  558.           of the shadow comparisons can be blended with the pixel to darken
  559.           it.  Supported on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more information,
  560.           see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
  561.  
  562.  
  563.      SSSSGGGGIIIIXXXX____sssshhhhaaaaddddoooowwww____aaaammmmbbbbiiiieeeennnntttt
  564.           controls the filtered texture value generated in shadowed regions
  565.           (see SSSSGGGGIIIIXXXX____sssshhhhaaaaddddoooowwww).  In effect, this changes the ambient lighting in
  566.           shadows.  Supported on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more
  567.           information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
  568.  
  569.  
  570.      SSSSGGGGIIIISSSS____sssshhhhaaaarrrrppppeeeennnn____tttteeeexxxxttttuuuurrrreeee
  571.           introduces texture magnification filters that sharpen the resulting
  572.           image by extrapolating from the level 1 image to the level 0 image.
  573.           Sharpening can be enabled for all color channels, for the alpha
  574.           channel only, or for the red, green, and blue channels only.
  575.           Supported on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems and on
  576.           IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more information, see
  577.           ggggllllSSSShhhhaaaarrrrppppeeeennnnTTTTeeeexxxxFFFFuuuunnnnccccSSSSGGGGIIIISSSS, ggggllllGGGGeeeettttSSSShhhhaaaarrrrppppeeeennnnTTTTeeeexxxxFFFFuuuunnnnccccSSSSGGGGIIIISSSS, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiii,
  578.           ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffff, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv,
  579.           ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, and ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv.
  580.  
  581.  
  582.      SSSSGGGGIIIIXXXX____sssspppprrrriiiitttteeee
  583.           provides a mechanism that automatically rotates primitives to face
  584.           the viewer.  Rotation about an axis is used for objects that are
  585.           roughly cylindrically symmetric, like trees.  Rotation about a point
  586.           is used for objects that are roughly spherically symmetric, like
  587.           clouds or explosions.  Supported only on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.
  588.           For more information, see ggggllllSSSSpppprrrriiiitttteeeePPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIIIXXXX.
  589.  
  590.  
  591.      SSSSGGGGIIIIXXXX____ssssuuuubbbbssssaaaammmmpppplllleeee
  592.           defines new pixel storage modes used in the conversion of image data
  593.           to and from component subsampled formats on the client side.
  594.           Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For more information, see
  595.           ggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeeeffff and ggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeeeiiii.
  596.  
  597.  
  598.  
  599.                                                                         PPPPaaaaggggeeee 9999
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  607.  
  608.  
  609.  
  610.      EEEEXXXXTTTT____ssssuuuubbbbtttteeeexxxxttttuuuurrrreeee
  611.           allows a contiguous portion of an already-existing texture image to
  612.           be redefined without affecting the remaining portion of the image or
  613.           any of the other state that describes the texture. There are three
  614.           new calls: ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDDEEEEXXXXTTTT, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT, and
  615.           ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee3333DDDDEEEEXXXXTTTT.  A subset of this extension is available on
  616.           RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems, and the full
  617.           extension is available on all other systems.  Refer to the man pages
  618.           for more details.
  619.  
  620.  
  621.      EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee
  622.           provides support for a variety of resolutions of color components in
  623.           texture images. That is, instead of treating a retained image as
  624.           having 1, 2, 3, or 4 components, it is treated as though it had a
  625.           specific format, such as GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE____AAAALLLLPPPPHHHHAAAA, or just GGGGLLLL____AAAALLLLPPPPHHHHAAAA.  This
  626.           extension also defines a robust method for applications to determine
  627.           what combinations of texture dimensions and resolutions are
  628.           supported by an implementation and it introduces a new texture
  629.           environment: GGGGLLLL____RRRREEEEPPPPLLLLAAAACCCCEEEE____EEEEXXXXTTTT.  For more information, see
  630.           ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD, ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv,
  631.           ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllTTTTeeeexxxxEEEEnnnnvvvvffff, ggggllllTTTTeeeexxxxEEEEnnnnvvvviiii, ggggllllTTTTeeeexxxxEEEEnnnnvvvvffffvvvv, and
  632.           ggggllllTTTTeeeexxxxEEEEnnnnvvvviiiivvvv.
  633.  
  634.  
  635.      EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee3333DDDD
  636.           supports 3-dimensional texture mapping. It also defines the in-
  637.           memory formats for 3D images, and adds pixel storage modes to
  638.           support them. For more information, see ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee3333DDDDEEEEXXXXTTTT,
  639.           ggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeee, ggggllllEEEEnnnnaaaabbbblllleeee, ggggllllDDDDiiiissssaaaabbbblllleeee, ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv,
  640.           ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv,
  641.           ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvvEEEEnnnnaaaabbbblllleeee, ggggllllGGGGeeeettttTTTTeeeexxxxIIIImmmmaaaaggggeeee, ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv,
  642.           ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, and
  643.           ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv.
  644.  
  645.  
  646.      SSSSGGGGIIIIXXXX____tttteeeexxxxttttuuuurrrreeee____aaaadddddddd____eeeennnnvvvv
  647.           defines a new texture environment function which scales the texture
  648.           value by the constant texture color and then adds a bias color.
  649.           Supported only on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more information,
  650.           see ggggllllTTTTeeeexxxxEEEEnnnnvvvv.
  651.  
  652.  
  653.      SSSSGGGGIIIISSSS____tttteeeexxxxttttuuuurrrreeee____bbbboooorrrrddddeeeerrrr____ccccllllaaaammmmpppp
  654.           provides a variation in the texture clamping arithmetic which
  655.           results in sampling the border color rather than the average of the
  656.           edge and border colors.  Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For
  657.           more information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv and ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv.
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.                                                                        PPPPaaaaggggeeee 11110000
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  673.  
  674.  
  675.  
  676.      SSSSGGGGIIII____tttteeeexxxxttttuuuurrrreeee____ccccoooolllloooorrrr____ttttaaaabbbblllleeee
  677.           adds a color lookup table to the texture mapping process.  For more
  678.           information, see ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeeeSSSSGGGGIIII.
  679.  
  680.  
  681.      SSSSGGGGIIIISSSS____tttteeeexxxxttttuuuurrrreeee____ccccoooolllloooorrrr____mmmmaaaasssskkkk
  682.           adds state to control the storing of individual color components
  683.           during texture image definition.  For more information, see
  684.           ggggllllTTTTeeeexxxxttttuuuurrrreeeeCCCCoooolllloooorrrrMMMMaaaasssskkkkSSSSGGGGIIIISSSS.
  685.  
  686.  
  687.      SSSSGGGGIIIIXXXX____tttteeeexxxxttttuuuurrrreeee____ccccoooooooorrrrddddiiiinnnnaaaatttteeee____ccccllllaaaammmmpppp
  688.           provides a way to set the maximum texture coordinate clamping value
  689.           to something other than 1.0.  Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.
  690.           For more information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
  691.  
  692.  
  693.      SSSSGGGGIIIISSSS____tttteeeexxxxttttuuuurrrreeee____eeeeddddggggeeee____ccccllllaaaammmmpppp
  694.           The GL normally clamps texture coordinates to the range [0,1].  This
  695.           can cause the texture sampling filter to straddle the edge of the
  696.           texture image, taking half its sample values from within the texture
  697.           image, and the other half from the texture border.  Sometimes this
  698.           is undesirable.  SSSSGGGGIIIISSSS____tttteeeexxxxttttuuuurrrreeee____eeeeddddggggeeee____ccccllllaaaammmmpppp defines a new texture
  699.           clamping method that ensures all sample values fall within the
  700.           texture image.  Supported on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy and OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo
  701.           systems.  For more information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
  702.  
  703.  
  704.      EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee____eeeennnnvvvv____aaaadddddddd
  705.           defines a new texture environment function which simply adds the
  706.           texture color to the fragment color.  Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo
  707.           systems.  For more information, see ggggllllTTTTeeeexxxxEEEEnnnnvvvv.
  708.  
  709.  
  710.      SSSSGGGGIIIISSSS____tttteeeexxxxttttuuuurrrreeee____ffffiiiilllltttteeeerrrr4444
  711.           allows 1D and 2D textures to be filtered using an application-
  712.           defined symmetric and separable filter with four samples per
  713.           dimension.  In the most common 2D case, the filter is bicubic.  This
  714.           filtering can yield better-quality images than mipmapping, and is
  715.           often used in image processing applications.  Supported on
  716.           IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  For more information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr,
  717.           ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr, ggggllllTTTTeeeexxxxFFFFiiiilllltttteeeerrrrFFFFuuuunnnnccccSSSSGGGGIIIISSSS, and ggggllllGGGGeeeettttTTTTeeeexxxxFFFFiiiilllltttteeeerrrrFFFFuuuunnnnccccSSSSGGGGIIIISSSS.
  718.  
  719.  
  720.      SSSSGGGGIIIISSSS____tttteeeexxxxttttuuuurrrreeee____lllloooodddd
  721.           provides mechanisms that reduce the number of mipmap levels required
  722.           for mipmapped texturing.  This allows a large texture to be loaded
  723.           and used initially at low resolution, and to increase the resolution
  724.           gradually as time passes or as more mipmap levels become available.
  725.           Supported on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy and OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For more
  726.           information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
  727.  
  728.  
  729.  
  730.  
  731.                                                                        PPPPaaaaggggeeee 11111111
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  739.  
  740.  
  741.  
  742.      SSSSGGGGIIIIXXXX____tttteeeexxxxttttuuuurrrreeee____lllloooodddd____bbbbiiiiaaaassss
  743.           provides mechanisms that apply a bias to the n, m and l parameters
  744.           in the LOD calculation, to compensate for over- or under-sampled
  745.           texture images.  Supported on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy and OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo
  746.           systems.  For more information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
  747.  
  748.  
  749.      EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee____oooobbbbjjjjeeeecccctttt
  750.           supports named texture objects whose contents and parameters may be
  751.           changed after they are defined.  (Contrast this with textures in
  752.           display lists, which cannot be modified after the display lists are
  753.           created.)  For machines with special texture memories,
  754.           EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee____oooobbbbjjjjeeeecccctttt also provides simple texture memory management.
  755.           For more information, see ggggllllGGGGeeeennnnTTTTeeeexxxxttttuuuurrrreeeessssEEEEXXXXTTTT, ggggllllDDDDeeeelllleeeetttteeeeTTTTeeeexxxxttttuuuurrrreeeessssEEEEXXXXTTTT,
  756.           ggggllllBBBBiiiinnnnddddTTTTeeeexxxxttttuuuurrrreeeeEEEEXXXXTTTT, ggggllllPPPPrrrriiiioooorrrriiiittttiiiizzzzeeeeTTTTeeeexxxxttttuuuurrrreeeessssEEEEXXXXTTTT, ggggllllAAAArrrreeeeTTTTeeeexxxxttttuuuurrrreeeessssRRRReeeessssiiiiddddeeeennnnttttEEEEXXXXTTTT,
  757.           and ggggllllIIIIssssTTTTeeeexxxxttttuuuurrrreeeeEEEEXXXXTTTT.
  758.  
  759.  
  760.      SSSSGGGGIIIIXXXX____tttteeeexxxxttttuuuurrrreeee____ssssccccaaaalllleeee____bbbbiiiiaaaassss
  761.           adds scale, bias, and clamp operations to the texture pipeline.
  762.           These operations are applied to the filtered result of a texture
  763.           lookup, before that result is used in the texture environment
  764.           equations and before the texture color lookup table of
  765.           SSSSGGGGIIII____tttteeeexxxxttttuuuurrrreeee____ccccoooolllloooorrrr____ttttaaaabbbblllleeee, if that extension exists.  Not supported on
  766.           RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems or on HHHHiiiigggghhhh IIIImmmmppppaaaacccctttt and
  767.           MMMMaaaaxxxxiiiimmmmuuuummmm IIIImmmmppppaaaacccctttt systems.  For more information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv,
  768.           ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, and ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
  769.  
  770.  
  771.      SSSSGGGGIIIISSSS____tttteeeexxxxttttuuuurrrreeee____sssseeeelllleeeecccctttt
  772.           adds new texture internal formats beyond those defined by
  773.           EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee.  The purpose of these new formats is to reorganize the
  774.           components of a texture into groups of components.  This allows
  775.           better utilization of texture memory by subdividing the internal
  776.           representation of a texel into 1, 2, or 4 smaller texels.
  777.  
  778.           For example on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems, an 8-bit luminance texture
  779.           would normally use a full 16 bits of texture memory for each texel,
  780.           but if the application chooses the GGGGLLLL____DDDDUUUUAAAALLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE8888____SSSSGGGGIIIISSSS internal
  781.           format, then two 8-bit luminance textures can be packed into the
  782.           same space.  When such a texture is active, the application must
  783.           select which of the two packed textures will be used for drawing.
  784.           Supported on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems and on HHHHiiiigggghhhh IIIImmmmppppaaaacccctttt and MMMMaaaaxxxxiiiimmmmuuuummmm
  785.           IIIImmmmppppaaaacccctttt systems.  For more information, see ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD,
  786.           ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee3333DDDDEEEEXXXXTTTT, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv,
  787.           and ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
  788.  
  789.  
  790.      EEEEXXXXTTTT____vvvveeeerrrrtttteeeexxxx____aaaarrrrrrrraaaayyyy
  791.           adds the ability to specify multiple geometric primitives with very
  792.           few subroutine calls. Instead of calling an OpenGL procedure to pass
  793.           each individual vertex, normal, or color, separate arrays of
  794.  
  795.  
  796.  
  797.                                                                        PPPPaaaaggggeeee 11112222
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  805.  
  806.  
  807.  
  808.           vertexes, normals, and colors are prespecified, and are used to
  809.           define a sequence of primitives (all of the same type) when a single
  810.           call is made to ggggllllDDDDrrrraaaawwwwAAAArrrrrrrraaaayyyyssssEEEEXXXXTTTT. A stride mechanism is provided so
  811.           that an application can choose to keep all vertex data staggered in
  812.           a single array, or sparsely in separate arrays. Single-array storage
  813.           generally will provide better performance.
  814.  
  815.           This extension also supports the rendering of individual array
  816.           elements, each specified as an index into the enabled arrays.
  817.  
  818.           For more information, see ggggllllAAAArrrrrrrraaaayyyyEEEElllleeeemmmmeeeennnnttttEEEEXXXXTTTT, ggggllllDDDDrrrraaaawwwwAAAArrrrrrrraaaayyyyssssEEEEXXXXTTTT,
  819.           ggggllllVVVVeeeerrrrtttteeeexxxxPPPPooooiiiinnnntttteeeerrrrEEEEXXXXTTTT, ggggllllNNNNoooorrrrmmmmaaaallllPPPPooooiiiinnnntttteeeerrrrEEEEXXXXTTTT, ggggllllCCCCoooolllloooorrrrPPPPooooiiiinnnntttteeeerrrrEEEEXXXXTTTT,
  820.           ggggllllIIIInnnnddddeeeexxxxPPPPooooiiiinnnntttteeeerrrrEEEEXXXXTTTT, ggggllllTTTTeeeexxxxCCCCoooooooorrrrddddPPPPooooiiiinnnntttteeeerrrrEEEEXXXXTTTT, ggggllllEEEEddddggggeeeeFFFFllllaaaaggggPPPPooooiiiinnnntttteeeerrrrEEEEXXXXTTTT, and
  821.           ggggllllGGGGeeeettttPPPPooooiiiinnnntttteeeerrrrvvvvEEEEXXXXTTTT.
  822.  
  823.  
  824.      SSSSGGGGIIIIXXXX____vvvveeeerrrrtttteeeexxxx____pppprrrreeeecccclllliiiipppp
  825.           supplies a way to control the precision of interpolation of
  826.           parameters across the extent of primitives with large screen space
  827.           dimensions.  This control allows trading off precision for higher
  828.           rasterization performance.  Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems.  For
  829.           more information, see ggggllllEEEEnnnnaaaabbbblllleeee and ggggllllHHHHiiiinnnntttt.
  830.  
  831.  
  832. UUUUSSSSIIIINNNNGGGG EEEEXXXXTTTTEEEENNNNSSSSIIIIOOOONNNNSSSS
  833.      Procedure names and tokens for OpenGL extensions are suffixed with EXT or
  834.      with a vendor-specfic acronym.  EXT is used for extensions that have been
  835.      reviewed and will be supported by more than one OpenGL vendor.
  836.  
  837.      SGI also supports some vendor-specific extensions. Procedure names and
  838.      tokens for the SGI-specific extensions are suffixed with SGI, SGIS or
  839.      SGIX. ``SGI'' is used for extensions that will be available across the
  840.      product line (although the support for all machines might not be released
  841.      simultaneously).  ``SGIS'' is used for extensions that will be available
  842.      on a subset of SGI platforms.  ``SGIX'' extensions are experimental; in
  843.      future releases, the API for these extensions might change or might not
  844.      be supported at all.
  845.  
  846.      All supported extensions have an associated macro definition in gl.h and
  847.      a corresponding token in the extensions string returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg.
  848.      For example, if the EEEEXXXXTTTT____aaaabbbbggggrrrr extension is supported then the token
  849.      GGGGLLLL____EEEEXXXXTTTT____aaaabbbbggggrrrr will be defined in gl.h and GGGGLLLL____EEEEXXXXTTTT____aaaabbbbggggrrrr will appear in the
  850.      extensions string returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg.
  851.  
  852.      The definitions in gl.h can be used at compile time to determine if an
  853.      extension's tokens and procedures exist in the OpenGL library. However,
  854.      the tokens returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg must be consulted at runtime to
  855.      determine whether the extension is supported on the particular display in
  856.      use at that moment.
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.                                                                        PPPPaaaaggggeeee 11113333
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  871.  
  872.  
  873.  
  874.      As an alternative to parsing the extensions string, you can determine
  875.      which extensions are supported by examining the renderer string (to
  876.      determine which graphics subsystem is being used) and the version string
  877.      (to determine the release number of the software being used).  For more
  878.      information, see ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg.
  879.  
  880.      On some machines an extension may be incompletely implemented, and
  881.      therefore its name will not appear in the extensions string.  In such
  882.      cases the only way to determine if the extension can be used is to query
  883.      the renderer and version strings.
  884.  
  885.      GLX also has been extended. Refer to ggggllllXXXXIIIInnnnttttrrrroooo for more information.
  886.  
  887.  
  888. NNNNOOOOTTTTEEEESSSS
  889.      When an OpenGL application uses indirect rendering, additional instances
  890.      of Xsgi, the SGI X server, process show up under ps.  The additional
  891.      processes are multiple threads of the X server, used to implement
  892.      indirect rendering.
  893.  
  894.      Do not mix OpenGL and IrisGL calls from within a single process.
  895.  
  896.  
  897. BBBBUUUUGGGGSSSS
  898.      Different OpenGL processes which render to the same window using direct
  899.      rendering will not share the software ancillary buffers on that window.
  900.  
  901.      If an OpenGL program does a server grab using its X connection, then for
  902.      the duration of the grab it should not render OpenGL into any window that
  903.      the client doing the grab did not create.  Otherwise a deadlock occurs.
  904.      The client is still able to do X rendering.  This holds for both local
  905.      and remote rendering.
  906.  
  907.      If the OpenGL DSO (libGL.so) is unloaded, by calling dlclose(), before
  908.      the X connection is closed (or before the application is shutdown), a
  909.      segv will occur. To get around this, call XXXXCCCClllloooosssseeeeDDDDiiiissssppppllllaaaayyyy before unloading
  910.      libGL.so.
  911.  
  912.      ggggllllXXXXCCCCooooppppyyyyCCCCoooonnnntttteeeexxxxtttt does not work correctly for direct rendering contexts if
  913.      the source context is not the current context or, on most systems, if the
  914.      destination context has never been made current to any thread.  For more
  915.      information, see ggggllllXXXXCCCCooooppppyyyyCCCCoooonnnntttteeeexxxxtttt.
  916.  
  917.      On SSSSoooolllliiiidddd IIIImmmmppppaaaacccctttt, HHHHiiiigggghhhh IIIImmmmppppaaaacccctttt and MMMMaaaaxxxxiiiimmmmuuuummmm IIIImmmmppppaaaacccctttt systems, and on
  918.      RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems, GGGGLLLLXXXX____BBBBUUUUFFFFFFFFEEEERRRR____SSSSIIIIZZZZEEEE is not
  919.      the sum of GGGGLLLLXXXX____RRRREEEEDDDD____SSSSIIIIZZZZEEEE, GGGGLLLLXXXX____GGGGRRRREEEEEEEENNNN____SSSSIIIIZZZZEEEE, GGGGLLLLXXXX____BBBBLLLLUUUUEEEE____SSSSIIIIZZZZEEEE, and
  920.      GGGGLLLLXXXX____AAAALLLLPPPPHHHHAAAA____SSSSIIIIZZZZEEEE for visuals with 12-bit RGBA components.
  921.  
  922.      glXSwapBuffers does not work for double-buffered GLX pixel buffers.
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.                                                                        PPPPaaaaggggeeee 11114444
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  937.  
  938.  
  939.  
  940.      On XXXXSSSS, XXXXZZZZ, EEEEllllaaaannnn, and EEEExxxxttttrrrreeeemmmmeeee systems, and IIIInnnnddddyyyy and XXXXLLLL systems,
  941.      ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr1111DDDDEEEEXXXXTTTT, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT, and
  942.      ggggllllSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT, will skip pixels and/or rows when the pixel zoom
  943.      is set so that it minifies (i.e., -1 < zoom < 1).
  944.  
  945.      Even though the SSSSGGGGIIIIXXXX____tttteeeexxxxttttuuuurrrreeee____ssssccccaaaalllleeee____bbbbiiiiaaaassss extension is implemented on XXXXSSSS,
  946.      XXXXZZZZ, EEEEllllaaaannnn, and EEEExxxxttttrrrreeeemmmmeeee systems, and on IIIInnnnddddyyyy and XXXXLLLL systems, it is not
  947.      possible to query GGGGLLLL____PPPPOOOOSSSSTTTT____TTTTEEEEXXXXTTTTUUUURRRREEEE____FFFFIIIILLLLTTTTEEEERRRR____BBBBIIIIAAAASSSS____RRRRAAAANNNNGGGGEEEE____SSSSGGGGIIIIXXXX and
  948.      GGGGLLLL____PPPPOOOOSSSSTTTT____TTTTEEEEXXXXTTTTUUUURRRREEEE____FFFFIIIILLLLTTTTEEEERRRR____SSSSCCCCAAAALLLLEEEE____RRRRAAAANNNNGGGGEEEE____SSSSGGGGIIIIXXXX. Doing so will result in a gl
  949.      error.
  950.  
  951.      On XXXXSSSS, XXXXZZZZ, EEEEllllaaaannnn, and EEEExxxxttttrrrreeeemmmmeeee systems, and on IIIInnnnddddyyyy and XXXXLLLL systems, calling
  952.      ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT, ggggllllRRRReeeesssseeeettttHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT, ggggllllMMMMiiiinnnnmmmmaaaaxxxxEEEEXXXXTTTT, or ggggllllRRRReeeesssseeeettttMMMMiiiinnnnmmmmaaaaxxxxEEEEXXXXTTTT
  953.      between a ggggllllBBBBeeeeggggiiiinnnn and ggggllllEEEEnnnndddd will not generate a GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN
  954.      error as it should.
  955.  
  956.      No locking of display list structures is done on behalf of indirect
  957.      OpenGL contexts that share display list spaces.  Applications that use
  958.      such contexts should use their own mechanisms to ensure mutual exclusion
  959.      when defining or destroying display lists.
  960.  
  961.      You may notice some discrepancies between the OpenGL Reference Manual
  962.      which is available through InSight and the man pages (i.e., the ones you
  963.      get using the "man gl..." command in a shell window). If so, the man
  964.      pages contain the correct, up to date, information.
  965.  
  966.  
  967.  
  968. MMMMAAAACCCCHHHHIIIINNNNEEEE DDDDEEEEPPPPEEEENNNNDDDDEEEENNNNCCCCIIIIEEEESSSS
  969.      Most machine dependencies are documented in the reference pages for the
  970.      commands with which they're most closely associated.  Some more general
  971.      observations follow:
  972.  
  973.      VVVVGGGGXXXX aaaannnndddd VVVVGGGGXXXXTTTT
  974.  
  975.      On VVVVGGGGXXXX and VVVVGGGGXXXXTTTT systems, OpenGL is implemented atop IrisGL. This
  976.      implementation passes the ``mustpass'' OpenGL conformance tests but,
  977.      nonetheless, the following inconsistencies exist: pixel centers lie on
  978.      integer coordinates (not half-integer coordinates), and diffuse and
  979.      specular light colors are ignored.
  980.  
  981.      If any of the following are enabled, then all geometric primitives will
  982.      be rendered through software (i.e., no hardware acceleration will be
  983.      used):
  984.  
  985.      +o    alpha test (unless test is GGGGLLLL____AAAALLLLWWWWAAAAYYYYSSSS or GGGGLLLL____NNNNOOOOTTTTEEEEQQQQUUUUAAAALLLL and reference
  986.           value is zero)
  987.  
  988.      +o    texture
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.                                                                        PPPPaaaaggggeeee 11115555
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002. ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))                    OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                    ggggllllIIIInnnnttttrrrroooo((((3333GGGG))))
  1003.  
  1004.  
  1005.  
  1006.      +o    lighting enabled but no lights enabled
  1007.  
  1008.      +o    clock-wise front face
  1009.  
  1010.      +o    fog enabled and color index visual
  1011.  
  1012.      +o    drawing into both front and back buffer AND blend is enabled, or
  1013.           logic op is enabled
  1014.  
  1015.      Points will be rendered through software if evaluators are used (e.g.,
  1016.      GGGGLLLL____MMMMAAAAPPPP1111____VVVVEEEERRRRTTTTEEEEXXXX3333 is enabled).
  1017.  
  1018.      Polygons and strips will be rendered through software if any of the
  1019.      following are true:
  1020.  
  1021.      +o    front mode is not the same as back mode and the polygon mode is not
  1022.           GGGGLLLL____FFFFIIIILLLLLLLL
  1023.  
  1024.      +o    polygon offset is enabled and the scale and bias offset factors are
  1025.           not 1 and 0, respectively.
  1026.  
  1027.      +o    points have to go through software and the polygon mode is GGGGLLLL____PPPPOOOOIIIINNNNTTTT
  1028.  
  1029.      On VGXT fog is done per-vertex instead of per-pixel.
  1030.  
  1031.  
  1032. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1033.      ggggllllXXXXIIIInnnnttttrrrroooo
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.                                                                        PPPPaaaaggggeeee 11116666
  1062.  
  1063.  
  1064.  
  1065.